<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <link rel="stylesheet" type="text/css" href="../../doc/style.css" />
  <title>SciTE Helper</title>
</head>

<body>
  <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0" class="tmenu">
    <tr>
      <td><img src="../../doc/SciTEIco.png" height="64" width="64" alt="Scintilla icon"></td>
      <td width="100%"><font size="5">SciTE Helper - ActiveX Control for SciTE</font></td>
    </tr>
  </table>

  <table bgcolor="#CCCCCC" width="100%" cellspacing="0" cellpadding="8" border="0" class="tmenu">
    <tr><td>
      <a href="../../doc/SciTEDoc_rus.html">Документация</a>&nbsp;&nbsp;
      <a href="../../doc/SciTEFAQ_rus.html">FAQ</a>&nbsp;&nbsp;
      <a href="../../doc/SciTERegEx_rus.html">Регулярные выражения</a>&nbsp;&nbsp;
      <a href="../../doc/SciTEExtension_rus.html">SciTE Extension</a>&nbsp;&nbsp;
      <a href="../../doc/SciTELua_rus.html">LUA</a>&nbsp;&nbsp;
      <a href="../../doc/SciTEDirector_rus.html">SciTE Director</a>&nbsp;&nbsp;
      <a href="../../doc/CommandValues_rus.html">Команды SciTE и Scintilla</a>&nbsp;&nbsp;
      <a href="../../doc/SciTE-Ru_Pack_rus.html">Сборка Ru-Board</a>&nbsp;&nbsp;
      <a href="../../doc/SciTE-Ru_Kernel_rus.html">Ядро SciTE-Ru</a>&nbsp;&nbsp;
      <a href="../../tools/LuaLib/shell_rus.html">Shell</a>&nbsp;&nbsp;
      <nobr>SciTE Helper</nobr>&nbsp;&nbsp;
      <a href="../../doc/ScintillaHistory_rus.html">История</a>
    </td></tr>
  </table>

<h3>Описание</h3>

<p>Freeware ActiveX компонент для организации взаимодействия между текстовым редактором SciTE и любыми скриптами и приложениями поддерживающими COM интерфейс.</p>

<h3>Установка, инициализация и удаление</h3>

<p>Для регистрации SciTE Helper в вашей системе запустите <code>Setup.vbs</code>
(он выполнит команду OC <span class="example">regsvr32 SciTE.dll</span>)</p>

<p>Для работы с SciTE Helper необходимо в Вашем скрипте произвести инициализацию объекта:
<div class="example">
  On Error Resume Next<br>
  Set SciTE = CreateObject("SciTE.Helper")<br>
  If Err.Number &lt;&gt; 0 Then<br>
  &nbsp;&nbsp;&nbsp;&nbsp;WScript.Echo "Please install SciTE Helper before!"<br>
  &nbsp;&nbsp;&nbsp;&nbsp;WScript.Quit 1<br>
  End If<br>
  On Error GoTo 0
</div></p>

<p>Для отмены регистрации запустите <code>Setup.vbs</code> повторно
(он выполнит команду OC <span class="example">regsvr32 /U SciTE.dll</span>)</p>

<p class="ruboardonly">В SciTE-Ru регистрация SciTE Helper и ее отмена происходит автоматически при выборе пункта меню '<cite>Tools</cite>' - '<cite>Настройка интеграции с Windows...</cite>'</p>

<h3>Свойства</h3>

<table cellpadding="1" cellspacing="0" border="1">
  <tr>
    <td><dfn>
      Left() As Long <cite>[read only]</cite><br>
      Top() As Long <cite>[read only]</cite><br>
      Width() As Long <cite>[read only]</cite><br>
      Height() As Long <cite>[read only]</cite><br>
    </dfn></td>

    <td>
      <p>
        Возвращает размеры и позицию окна SciTE.<br>
        Эти свойства эквивалентны параметрам SciTE <var>position.left</var>, <var>position.top</var>, <var>position.width</var>, <var>position.height</var>
      </p>
      <p>Пример использования:
      <div class="example">
        WScript.Echo "position.left = " &amp; SciTE.Left<br>
        WScript.Echo "position.top = " &amp; SciTE.Top<br>
        WScript.Echo "position.width = " &amp; SciTE.Width<br>
        WScript.Echo "position.height = " &amp; SciTE.Height
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      Get GetText() As String <cite>[read only]</cite>
    </dfn></td>

    <td>
      <p>
        Возвращает весь текст из активного буфера SciTE.<br>
        Это свойство работает аналогично lua директиве <var>editor:GetText()</var>
      </p>
      <p>Пример использования:
      <div class="example">
        WScript.Echo SciTE.GetText
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      GetSelText() As String <cite>[read only]</cite>
    </dfn></td>

    <td>
      <p>
        Возвращает выделенный текст из активного буфера SciTE.<br>
        Возвращаемый текст, идентичен тому, что содержится во внутренней переменной SciTE <var>$(CurrentSelection)</var>
      </p>
      <p>Пример использования:
      <div class="example">
        WScript.Echo SciTE.GetSelText
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      Props(ByVal Key As String) As String <cite>[read]</cite><br>
      Props(ByVal Key As String, RHS As String) <cite>[write]</cite>
    </dfn></td>

    <td>
      <p>
        Возврат и установка значения любого из параметров SciTE.<br>
        Эквивалентно lua директиве <var>props["property.name"]</var>
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.Props("my.key") = WScript.Name<br>
        WScript.Echo SciTE.Props("my.key")
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      WindowID() As Long <cite>[read]</cite><br>
      WindowID(RHS As Long) <cite>[write]</cite>
    </dfn></td>

    <td>
      <p>
        Возвращает значение идентификатора того окна SciTE из которого был запущен данный скрипт или программа.<br>
        Позволяет установить (при наличии нескольких окон SciTE) одно, с которым будет осуществляться обмен через <code>SciTE Director Interface</code>.
      </p>
      <p>Пример использования:
      <div class="example">
        SciTEWindowID = SciTE.WindowID<br>
        WScript.Echo SciTEWindowID
      </div>
    </td>
  </tr>

</table>

<h3>Методы</h3>

<table cellpadding="1" cellspacing="0" border="1">

  <tr>
    <td><dfn>
      Send(ByVal Data As String) As String
    </dfn></td>

    <td>
      <p>
        Осуществляет отправку в SciTE заданной последовательности команд, используя <code>SciTE Director Interface</code>.<br>
        Возвращает в вызывающий скрипт или программу полученное значение.<br>
        Список всех доступных команд - в файле <a href="../../doc/SciTEDirector_rus.html">SciTEDirector_rus.html</a>
      </p>
      <p>Пример использования:
      <div class="example">
        WScript.Echo SciTE.Send("askproperty:character.set")
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      LUA(ByVal Command As String) As String
    </dfn></td>

    <td>
      <p>
        Позволяет выполнить в SciTE заданные lua команды.<br>
        Возвращает в вызывающий скрипт или программу полученное значение.
      </p>
      <p>Пример использования:
      <div class="example">
        WScript.Echo SciTE.LUA("editor.CurrentPos")
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      ReplaceSel (ByVal ReplaceText As String)
    </dfn></td>

    <td>
      <p>
        Заменяет выделенный на активной странице SciTE текст. Экивалентен lua директиве <var>editor:ReplaceSel(string)</var>. Возвращаемое значение отсутствует.
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.ReplaceSel "&lt;http://scite-ru.org&gt;"
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      MenuCommand (ByVal IDM_Command As String)
    </dfn></td>

    <td>
      <p>
        Выполняет любую команду меню SciTE. Возвращаемое значение отсутствует.<br>
        Список всех доступных команд - в файле <a href="../../doc/CommandValuesExt_rus.html">CommandValuesExt_rus.html</a>
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.MenuCommand 902
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      Trace (ByVal Data As String)
    </dfn></td>

    <td>
      <p>
        Выводит текст в окне консоли SciTE (без префикса и перевода строки). Экивалентен директиве <var>trace(string)</var>. Возвращаемое значение отсутствует.
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.Trace "First line" &amp; "\r\n" &amp; "Second line" &amp; "\r\n"
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      OnTop (ByVal WindowName As String, ByVal OnTop As Boolean)
    </dfn></td>

    <td>
      <p>
        Устанавливает для окна приложения режим "поверх всех окон". Возвращаемое значение отсутствует.
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.OnTop document.title, True
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      Focus ()
    </dfn></td>

    <td>
      <p>
        Переводит фокус ввода в окно SciTE. Возвращаемое значение отсутствует. <br>
        (Полезно, когда скрипт или программа похищает фокус из SciTE)
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.Focus
      </div>
    </td>
  </tr>

  <tr>
    <td><dfn>
      About ()
    </dfn></td>

    <td>
      <p>
        Показывает сообщение "О программе". Возвращаемое значение отсутствует.
      </p>
      <p>Пример использования:
      <div class="example">
        SciTE.About
      </div>
    </td>
  </tr>

</table>

<h3>Загрузка</h3>

<p><u>Текущая версия SciTE Helper</u>: <var>1.4</var><br></p>
<p>
<a href="http://code.google.com/p/scite-ru/downloads/detail?name=SciTE.Helper.zip">SciTE.dll</a> (включая документацию и примеры скриптов)<br>
<a href="http://scite-ru.googlecode.com/hg/helper/">Исходный код</a>
</p>

<h3>Известные недостатки</h3>

<p><code>SciTE Helper</code> написан на Visual Basic 5.0 и требует для своей работы библиотеки <code>msvbvm50.dll</code>, которая имеется во всех версиях Windows, до Windows XP SP1 включительно. В более поздних версиях данная библиотека отсутствует и ее необходимо <a href="http://www.google.com/search?q=msvbvm50.dll">скачать</a> самостоятельно.<br>
Предложение по решению данной проблемы изложено в <a href="http://code.google.com/p/scite-ru/issues/detail?id=62">Issue 62</a></p>

<p><code>SciTE Helper</code> в настоящее время не ловит события SciTE. Реализация данной возможности стоит в планах.</p>

</body>
</html>
